package common.consts;

/**
 * Created by aceyin on 2015/6/9 0009.
 * 用户帐号相关的常量。
 */
public interface Accounts {
    static boolean isValidType(String type) {
        if (type == null) {
            return false;
        }
        for (Type t : Type.values()) {
            if (t.name().equalsIgnoreCase(type)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 帐号类型
     */
    enum Type {
        // 用户
        USER,
        // 雇主
        BUSINESS,
        // 管理员
        ADMIN
    }

    /**
     * 帐号状态
     */
    enum Status {
        // 正常状态
        NORMAL,
        // 锁住,往往因为密码被盗而锁住
        LOCKED,
        // 下线状态
        OFFLINE,
        // 封禁状态
        BLOCKED;

        public static boolean isLocked(String status) {
            if (status == null) {
                return false;
            }
            return LOCKED.name().equalsIgnoreCase(status);
        }

        public static boolean isAbnormal(String status) {
            if (status == null) {
                return true;
            }

            boolean notNormal = !NORMAL.name().equalsIgnoreCase(status);
            boolean notOffline = !OFFLINE.name().equalsIgnoreCase(status);
            return notNormal && notOffline;
        }
    }
}
